package revisaosistematica;

import java.util.HashSet;
import java.util.Set;

/**
 *
 * @author claudiane
 */
public class Consulta {
    
    //Obtem o numero da consulta
    public static String getNumConsul (String consulta){
      
        String numConsulta = Extracao.getPattern(consulta,"[0-9].+QU ");
        numConsulta = numConsulta.replaceAll("QU ","");
        numConsulta = numConsulta.trim();
        
        return numConsulta;
    }
    
    //Obtem o texto da consulta
    public static String getTextConsul (String consulta){
      
        String textConsulta = Extracao.getPattern(consulta,"QU .+NR ");
        textConsulta = textConsulta.replaceAll("QU ","");
        textConsulta = textConsulta.replaceAll("NR ","");
        textConsulta = textConsulta.replaceAll("\n "," ");
        textConsulta = textConsulta.trim();
        return textConsulta;
    }
    
    //Obtem o numero de documentos relevantes para cada consulta segundo a colecao CFC
    public static String getNumDocRelevantes (String consulta){
      
        String numDocRelevantes = Extracao.getPattern(consulta,"NR .+RD ");
        numDocRelevantes = numDocRelevantes.replaceAll("RD ","");
        numDocRelevantes = numDocRelevantes.replaceAll("NR ","");
        numDocRelevantes=numDocRelevantes.trim();
        return numDocRelevantes;
    }

   
    //Obtem os documentos relevantes da coleção para cada consulta e retorna em uma hashSet
    public static Set<Integer> getDocRelevantes (String consulta){

        String docPeso = Extracao.getPattern(consulta,"RD .+");
        docPeso = docPeso.replaceAll(" +", " ");
        docPeso = docPeso.replaceAll("RD ", "");
        String[] docRelevantes = docPeso.split(" ");
       
        //HashSet para armazenar os documentos relevantes da Colecao
        Set<Integer> hashDocRel = new HashSet<Integer>(Integer.parseInt(getNumDocRelevantes(consulta)));
        
        //Percorre o vetor de documentos relevantes
        for (int i=0;i<docRelevantes.length;i=i+2){
            //remove espaços em branco no inicio e no final de cada numero para poder converter essa string para integer
            docRelevantes[i] = docRelevantes[i].trim();
            if (!docRelevantes[i].equals("")){
                //Adiciona o numero dos documentos relevantes na hashSet
                hashDocRel.add(Integer.parseInt(docRelevantes[i]));
            }
        }

        return hashDocRel;
    }

    
    //Obtem cada consulta separadamente.(Toda consulta começa com "QN ")
    public static String[] getConsulSeparada(String docConsulta){
        
        //Divide o documento no inicio de cada documento "PN "
        String[] arrayConsulta = docConsulta.split("QN ");
        return arrayConsulta;
        
    }
    
}
